日期選擇對話框,可以讓使用者選擇日期
建立 DatePickerDialog
DatePickerDialog (context: Context)
建立一個為初始日期為現在日期及預設樣式的日期選擇對話框
DatePickerDialog (context: Context, themeResId: Int)
建立一個初始日期為現在日期及指定樣式的日期選擇對話框
context:建立日期選擇對話框的 parent context。
themeResId:指定想要的樣式的 resource ID,若為 0 則為 parent context 預設的樣式。
關於日期選擇對話框的樣式可以參考 參考資料
DatePickerDialog (context: Context,
listener: DatePickerDialog.OnDateSetListener
year: Int,
month: Int,
dayOfMonth: Int)
建立指定初始日期與預設主題的日期選擇對話框
context:建立日期選擇對話框的 parent context。
listener:監聽使用者選擇的日期,使用者選擇日期後會調用監聽器。
year:指定日期選擇對話框初始要顯示的年份。
month:指定日期選擇對話框初始要顯示的月份。
dayOfMonth:指定日期選擇對話框初始要顯示的日期。
DatePickerDialog(this,
dateListener,
calender.get(Calendar.YEAR),
calender.get(Calendar.MONTH),
calender.get(Calendar.DAY_OF_MONTH))
DatePickerDialog (context: Context,
themeResId: Int,
listener: DatePickerDialog.OnDateSetListener,
year: Int,
monthOfYear: Int,
dayOfMonth: Int)
建立指定初始日期與樣式的日期選擇對話框
context:建立日期選擇對話框的 parent context。
themeResId:指定想要的樣式的 resource ID,若為 0 則為 parent context 預設的樣式。
關於日期選擇對話框的樣式可以參考 [參考資料]
listener:監聽使用者選擇的日期,使用者選擇日期後會調用監聽器。
year:指定日期選擇對話框初始要顯示的年份。
month:指定日期選擇對話框初始要顯示的月份。
dayOfMonth:指定日期選擇對話框初始要顯示的日期。
建立完日期選擇對話框後要使用 show() 方法顯示出來
DatePickerDialog( ... ).show()
用來監聽使用者選擇的日期的 interface
val dateListener = object: DatePickerDialog.OnDateSetListener { }
只有一個需要 override 的 funtion
onDateSet (view: DatePicker, year: Int, month: Int, dayOfMonth: Int)
view:關聯的日期選擇對話框
year:使用者選擇的年
month:使用者選擇的月
dayOfMonth:使用者選擇的日期
val dateListener = object: DatePickerDialog.OnDateSetListener {
override fun onDateSet(view: DatePicker, year: Int, month: Int, dayOfMonth: Int){
calender.set(year, month, day)
format("yyyy / MM / dd", date_edit)
}
}
fun format(format: String, view: View) {
val time = SimpleDateFormat(format, Locale.TAIWAN)
(view as EditText).setText(time.format(calender.time))
}
本次實作為使用 lambda 寫法
val dateListener = DatePickerDialog.OnDateSetListener { _, year, month, day ->
calender.set(year, month, day)
format("yyyy / MM / dd", date_edit)
}
時間選擇對話框,可以讓使用者選擇時間
建立 TimePickerDialog
TimePickerDialog (context: Context,
listener: TimePickerDialog.OnTimeSetListener,
hourOfDay: Int,
minute: Int,
is24HourView: Boolean)
建立指定初始時間與預設主題時間選擇對話框
context:建立時間選擇對話框的 parent context。
listener:監聽使用者選擇的時間,使用者選擇時間後會調用監聽器。
hourOfDay:指定時間選擇對話框初始要顯示的小時值。
minute:指定時間選擇對話框初始要顯示的分鐘值。
is24HourView:顯示是否為 24 小時制。
True:時間選擇對話框的顯示會為 24 小時視圖。
False:時間選擇對話框的顯示會有 AM、PM。
TimePickerDialog(this,
timeListener,
calender.get(Calendar.HOUR_OF_DAY),
calender.get(Calendar.MINUTE),
true
)
TimePickerDialog (context: Context,
themeResId: Int,
listener: TimePickerDialog.OnTimeSetListener,
hourOfDay: Int,
minute: Int,
is24HourView: Boolean)
context:建立時間選擇對話框的 parent context。
themeResId:指定想要的樣式的 resource ID,若為 0 則為 parent context 預設的樣式。
時間選擇對話框的樣式與日期選擇對話框的樣式種類相同
listener:監聽使用者選擇的時間,使用者選擇時間後會調用監聽器。
hourOfDay:指定時間選擇對話框初始要顯示的小時值。
minute:指定時間選擇對話框初始要顯示的分鐘值。
is24HourView:顯示是否為 24 小時制。
True:時間選擇對話框的顯示會為 24 小時視圖。
False:時間選擇對話框的顯示會有 AM、PM。
建立完日期選擇對話框後要使用 show() 方法顯示出來
TimePickerDialog( ... ).show()
用來監聽使用者選擇的日期的 interface
val dateListener = object: DatePickerDialog.OnDateSetListener { }
只有一個需要 override 的 funtion
onTimeSet (view: TimePicker, hourOfDay: Int, minute: Int)
view:關聯的時間選擇對話框
hourOfDay:使用者選擇的小時值
minute:使用者選擇的分鐘值
val timeListener = object: TimePickerDialog.OnTimeSetListener {
override fun onTimeSet(view: TimePicker, hourOfDay: Int, minute: Int){
calender.set(Calendar.HOUR_OF_DAY, hour)
calender.set(Calendar.MINUTE, min)
format("HH : mm", time_edit)
}
}
fun format(format: String, view: View) {
val time = SimpleDateFormat(format, Locale.TAIWAN)
(view as EditText).setText(time.format(calender.time))
}
本次實作為使用 lambda 寫法
val timeListener = TimePickerDialog.OnTimeSetListener { _, hour, min->
calender.set(Calendar.HOUR_OF_DAY, hour)
calender.set(Calendar.MINUTE, min)
format("HH : mm", time_edit)
}
Android
Kotlin
DatePickerDialog
TimePickerDialog